function addEditButton() { $(".editButton").remove(); $(".transaction.highlight").removeClass('highlight'); $(this).addClass('highlight'); $(this).append("<input type='button' class='editButton' value='edit' />") } $("body").on('click', '.transaction', addEditButton());Recibo un mensaje de error de "TypeError no capturado: no se puede leer la propiedad 'createDocumentFragment' de undefined" cuando uso el código anterior.
Intenté buscar en algunas de las mismas preguntas que se han publicado sobre esto y ahora asumo que el error se debe a la forma en que estoy usando "esto", pero no estoy seguro de cómo solucionar el problema.
El código funciona bien si pongo todo el código dentro de $("cuerpo").en la llamada, pero no cuando uso la función externa addEditButton(). ¿Alguien puede ayudar por favor?
No llame a la función cuando la enlace, simplemente pásela como referencia.
$("body").on('click', '.transaction', addEditButton);Está asignando el resultado devuelto por su función addEditButton , en lugar de una referencia a la función en sí. Suelta los paréntesis y debería funcionar:
$("body").on('click', '.transaction', addEditButton);